package com.cskaoyan.javase.exception.handle2.default1;

/**
 * @description: Java默认的异常处理机制
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 1，如果在main方法中产生了异常，我们也不显式的处理，那么默认情况下，main方法会往上抛出该异常，然后由jvm接收了这个异常，然后jvm会在控制台打印异常的信息：包括异常的全限定类名，异常产生的原因，异常的位置，jvm会立刻终止该Java程序的执行
 *  思考：
 *  1111会输出吗？ 会
 *  2222会输出吗？ 不会
 * 2，如果不是main方法产生异常，而是main方法的调用方法产生异常
 *
 * - 如果错误产生在main方法当中的另一个方法中
 *   - 当程序执行到该方法的错误行数时，JVM会终止程序的执行
 *     - 向上给方法的调用者抛出一个该异常信息封装成的对象
 *   - 一直向上抛出，直到抛给main方法，main方法最终抛给JVM
 *   - 发生异常之前的语句正常执行，但是之后的语句都不执行了
 *
 */
public class Demo {
    public static void main(String[] args) {
        //System.out.println("11111111");
        //System.out.println(10/0);
        //System.out.println("22222222222");
        test1();
    }

    public static void test1() {
        System.out.println("111111");
        test2();
        System.out.println("222222");
    }

    public static void test2() {
        System.out.println("test2111111");
        System.out.println(10 / 0);
        System.out.println("test2222222");
    }
}
